package com.yanggu.spark.core.rdd.transform.value

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

//创建rdd的方式
//1. 从内存中创建
//2. 从外部的存储系统读取数据后创建
//3. 从其他RDD算子转换而来
object RDD02_Make_RDD {

  def main(args: Array[String]): Unit = {

    //1. 创建sparkConf配置文件
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("spark")

    //2. 创建spark上下文环境对象
    val sparkContext = new SparkContext(sparkConf)

    //3. (从内存中)创建RDD
    val rdd1: RDD[Int] = sparkContext.makeRDD(List[Int](1, 2, 3, 4, 5))
    val rdd2: RDD[Int] = sparkContext.parallelize(List[Int](1, 2, 3, 4, 5))

    //4. (从外部存储系统读取数据)创建RDD
    //例如hdfs、本地文件系统、hbase、mysql等
    //这里读取文件的方式使用的是map reduce的InputFormat
    val rdd3: RDD[String] = sparkContext.textFile("input/word.txt")

    rdd1.collect.foreach(println)
    rdd2.collect.foreach(println)
    rdd3.collect.foreach(println)

  }

}
